<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php学习笔记[035]</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="show"><span>035 php制作图片水印和缩略图</span></div>
<?php include 'include/top.php';?>
<div class="text">
<b>文字水印</b>
文字水印和前面的图片验证码有一部分相同，不过我们需要一个函数把图片文件载入为php编码这个函数就是<strong>imagecreatefrom*</strong>其派生使用比较多。一般用switch来判断我们看实例来说明它的使用方法<br />
<div class="code">
&lt;?php<br />
$img='file/dog.jpg';//载入大图片<br />
$arrimg=getimagesize($img);//读取大图片信息<br />
switch($arrimg[2])//判断$img的图片类型用不同的函数解析图片为php格式<br />
{<br />
case 1: <br />
$img=imagecreatefromgif($img);<br />
break;<br />
case 2:<br />
$img=imagecreatefromjpeg($img);<br />
break;<br />
case 3:<br />
$img=imagecreatefrompng($img);<br />
break;<br />
}<br />
$color=imagecolorallocate($img,100,100,100);//建立一个黄色的颜色<br />
$str='古代牧羊犬';//文字,如果不是utf8则需要用iconv函数转换<br />
imagettftext($img,16,0,20,20,$color,'file/simkai.ttf',$str);//将文字写入到图片中<br />
//header('Content-type: image/jpeg');//用图片将转换为png格式<br />
imagejpeg($img,'file/addtextlogo.jpg');//将图片用png格式输出<br />
?&gt;&lt;img src=&quot;file/dog.jpg&quot;&gt;<br />
&lt;img src=&quot;file/addtextlogo.jpg&quot;&gt;</div>
我们看它运行的效果：
<div class="effect">

<?php
$img='file/dog.jpg';//载入大图片
$arrimg=getimagesize($img);//读取大图片信息
switch($arrimg[2])//判断$img的图片类型用不同的函数解析图片为php格式
	{
	case 1:	
	$img=imagecreatefromgif($img);
	break;
	case 2:
	$img=imagecreatefromjpeg($img);
	break;
	case 3:
	$img=imagecreatefrompng($img);
	break;
	}
$color=imagecolorallocate($img,100,100,100);//建立一个黄色的颜色
$str='古代牧羊犬';//文字,如果不是utf8则需要用iconv函数转换
imagettftext($img,16,0,20,20,$color,'file/simkai.ttf',$str);//将文字写入到图片中
//header('Content-type: image/jpeg');//用图片将转换为png格式
imagejpeg($img,'file/addtextlogo.jpg');//将图片用png格式输出
?><img src="file/dog.jpg">
<img src="file/addtextlogo.jpg">
</div>
</div>
<div class="text">
<b>图片水印</b>
图片水印用到一个图片copy函数：<strong>imagecopy</strong>其使用语法：<br />
<strong>imagecopy(原图,logo,原图起始x,原图起始Y,logo起始x,logo起始Y,logo选取宽度,logo选取高度);</strong>
我们来看下面的实例<br />
<div class="code">
&lt;?php<br />
$img='file/dog.jpg';//载入大图片<br />
$logo='file/logo.png';//载入logo图片<br />
$img=imagecreatefromjpeg($img);//将dog文件解析为php代码<br />
$logo=imagecreatefrompng($logo);//将logo文件解析为php代码<br />
imagecopy($img,$logo,150,150,0,0,120,24);//将logo图片拷贝在dog图片的150，150位置，<br />
//header('Content-type: image/jpeg');//用图片将转换为png格式<br />
imagejpeg($img,'file/addimglogo.jpg');//将图片用png格式输出<br />
?&gt;<br />
&lt;img src=&quot;file/dog.jpg&quot;&gt;<br />
&lt;img src=&quot;file/addimglogo.jpg&quot;&gt;<br />
</div>
我们来看效果
<div class="effect">
<?php
$img='file/dog.jpg';//载入大图片
$logo='file/logo.png';//载入logo图片
$img=imagecreatefromjpeg($img);//将dog文件解析为php代码
$logo=imagecreatefrompng($logo);//将logo文件解析为php代码
imagecopy($img,$logo,150,150,0,0,120,24);//将logo图片拷贝在dog图片的150，150位置，
//header('Content-type: image/jpeg');//用图片将转换为png格式
imagejpeg($img,'file/addimglogo.jpg');//将图片用png格式输出
?>
<img src="file/dog.jpg">
<img src="file/addimglogo.jpg"><img src="file/logo.png">
</div>
</div>
<div class="text">
<b>图片缩略图</b>
函数imagecopyresized，将图片放置在一张新的图片上，并对原先的图片经行裁切<br />
使用方式<strong>imagecopyresized(裁切图片,原图片,裁切起始x坐标,裁切起始Y坐标,原图起始x坐标,原图起始Y坐标,裁切宽度,裁切高度,原图选取宽度,原图选取高度);</strong>
我们用实例来演示它<br />
<div class="code">&lt;?php<br />
  $img='file/dog.jpg';//载入dog图片<br />
  $img=imagecreatefromjpeg($img);//将dog图片转码为php文件<br />
  $new=imagecreatetruecolor(200,150);//建立new图片最好用真彩图片，否则图片画质会受到影响。<br />
  imagecopyresized($new,$img,0,0,50,30,200,150,320,240);//用new图片裁切缩放dog图片<br />
  imagejpeg($new,'file/little.jpg');//保存little图片<br />
  ?&gt;<br />
  &lt;img src=&quot;file/dog.jpg&quot; /&gt;<br />
  &lt;img src=&quot;file/little.jpg&quot; /&gt; </div>
  我们看运行的效果
<div class="effect">
<?php
$img='file/dog.jpg';//载入dog图片
$img=imagecreatefromjpeg($img);//将dog图片转码为php文件
$new=imagecreatetruecolor(200,150);//建立new图片
imagecopyresized($new,$img,0,0,50,30,200,150,320,240);//用new图片裁切缩放dog图片
imagejpeg($new,'file/little.jpg');//保存little图片
?>
<img src="file/dog.jpg" />
<img src="file/little.jpg" />
</div>
</div>
</body>
</html>
